home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / cmsrc392.zip / ITALMS.MF < prev    next >
Text File  |  1992-03-30  |  5KB  |  116 lines

  1. % This file contains miscellaneous symbols of math italic fonts.
  2. % The character codes are \0100, \0140, and \0173--\0177.
  3.  
  4. cmchar "Partial differential sign";
  5. beginchar(oct"100",10u#,asc_height#,0);
  6. italcorr .7asc_height#*slant+.5curve#-1.5u#;
  7. adjust_fit(0,0);
  8. numeric top_thickness,bot_thickness,side_thickness,pull;
  9. top_thickness=max(fine.breadth,vround(slab-2vair_corr));
  10. bot_thickness=max(fine.breadth,vround(slab-vair_corr));
  11. side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
  12. pull=min(.25,1.5superpull);
  13. pickup fine.nib; pos2(top_thickness,90);
  14. pos3(side_thickness,0); pos4(bot_thickness,-90);
  15. pos5(side_thickness,-180); pos6(vair,-270);
  16. lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
  17. x4=x6+.1u=x2+u=.5w;
  18. top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
  19. y5=.5[y4,y6]; top y6=vround 5/8h+o;
  20. path p; p=pulled_super_arc.l(3,4)(pull);
  21. numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
  22. pos7(thin_join,0); z7l=point t of p;
  23. (x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
  24. filldraw stroke pulled_super_arc.e(2,3)(pull)
  25.  & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
  26.  & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
  27.  & z6e{right}...{direction t of p}z7e;  % arc and bowl
  28. pos1(hair,180); pos0(flare,180);
  29. lft x0r=min(lft x2-eps,hround 1.2u);
  30. y0=vround min(.85h-.5flare,.8h+.5flare)+o;
  31. {{less_tense; bulb(2,1,0)}};  % arc and bulb
  32. math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
  33. penlabels(0,1,2,3,4,5,6,7); endchar;
  34.  
  35. cmchar "Lowercase italic script l";
  36. beginchar(oct"140",4.5u#+max(1.5u#,stem#),asc_height#,0);
  37. italcorr .8asc_height#*slant-u#;
  38. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  39. pos1(hair,-45); pos2(hair,0); pos3(vair,90);
  40. pos4(stem,180); pos5(vair,270); pos6(hair,315);
  41. lft x1l=hround(lft x1l-x1); rt x2r=hround(w-1.5u); x3=.5w;
  42. lft x4r=hround .5u; x5=x3+.75u; x6=x1+w+1;
  43. y1=y6=.125h; y2=.8h; top y3r=h+oo; y4=.5[y3,y5]; bot y5=-oo;
  44. filldraw stroke z1e{10u,asc_height}...z2e{up}...pulled_arc.e(3,4)
  45.  & pulled_arc.e(4,5)...z6e{10u,asc_height};  % bowl and hook
  46. math_fit(0,ic#); penlabels(1,2,3,4,5,6); endchar;
  47.  
  48. cmchar "Dotless italic letter i";
  49. beginchar(oct"173",5u#,x_height#,0);
  50. italcorr 1/3x_height#*slant+.5hair#+.5u#;
  51. adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
  52. x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
  53. hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed);  % hooks
  54. filldraw stroke z2e--z3e;  % stem
  55. math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
  56. penlabels(0,1,2,3,4,5); endchar;
  57.  
  58. cmchar "Dotless italic letter j";
  59. beginchar(oct"174",5.5u#,x_height#,desc_depth#);
  60. italcorr x_height#*slant+.5stem#-2u#;
  61. adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
  62. x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
  63. hook_in(0,1,2);  % opening hook
  64. pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
  65. bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
  66. x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
  67. filldraw stroke z2e---z3e...{left}z4e;  % stem and arc
  68. bulb(4,5,6);  % bulb
  69. math_fit(desc_depth#*slant,ic#); penlabels(0,1,2,3,4,5,6); endchar;
  70.  
  71. cmchar "Weierstrass p";
  72. beginchar(oct"175",11u#,x_height#,desc_depth#);
  73. italcorr .7x_height#*slant+.5stem#-u# if math_fitting:-.5u# fi;
  74. adjust_fit(0,0); pickup fine.nib;
  75. numeric theta; theta=90-angle(8u,h); slope:=-h/8u;  % angle at middle
  76. pos2(vair,-90); pos1(vstem,theta); pos7(vair,-90);
  77. x2+.5u=x1=x7-.5u=3u; top y2l=h+o; bot y7r=-d-o; y1=.4[-d,h];
  78. lft x3l=hround .5u; rt x6r=hround max(rt x7+.5,.5w-.25u);
  79. x3r-x3l=x6r-x6l=(hround .5[vair,vstem])-fine;
  80. ellipse_set(2l,3l,4l,1l); ellipse_set(2r,3r,4r,1r); y3=y3r;
  81. ellipse_set(7l,6l,5l,1l); ellipse_set(7r,6r,5r,1r); y6=y6r;
  82. filldraw stroke super_arc.e(2,3) & z3e{down}
  83.  ..z4e---z5e..z6e{down} & super_arc.e(6,7);  % flourish
  84. pos8(hair,180); pos9(vair,90); pos10(stem,0);
  85. pos11(vair,-90); pos12(hair,-180); pos13(.3[hair,flare],-180);
  86. rt x10r=hround(w-1.5u+.5stem); lft x12r=hround(.5w-.5u);
  87. rt x8l=hround 2.25u; x9=x11=max(x12l+eps,.5w+1.5u);
  88. y8=0; top y9r=vround(.9h+o); y10=.5[y9,y11]; bot y11r=-oo;
  89. filldraw stroke z7e{left}...z8e{up}...pulled_arc.e(9,10)
  90.  & pulled_arc.e(10,11);  % stem and bowl
  91. y13-.5(.6[hair,flare])=.15h; bulb(11,12,13);  % bulb
  92. math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
  93.  
  94. cmchar "Arrow (vector) accent";
  95. beginchar(oct"176",9u#,asc_height#+.5rule_thickness#,0);
  96. italcorr .7[x_height#,asc_height#]*slant;
  97. adjust_fit(0,0); pickup rule.nib;
  98. lft x1=hround .5u; x2=w-x1; y1=y2=good.x .7[x_height,asc_height];
  99. draw z1--z2;  % bar
  100. rt x3=rt x4=hround(x2-u);
  101. y3=y2+.3(asc_height-x_height); y4=y2-.3(asc_height-x_height);
  102. draw z3{x2-x3,2(y2-y3)}...{2(x2-x3),y2-y3}z2;  % upper point
  103. draw z4{x2-x4,2(y2-y4)}...{2(x2-x4),y2-y4}z2;  % lower point
  104. labels(1,2,3,4); endchar;
  105.  
  106. cmchar "Tie accent";
  107. beginchar(oct"177",5u#,asc_height#,0);
  108. italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
  109. adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
  110. pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90); pos3(hair,0);
  111. lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
  112. rt x3r=hround(w+4u+2letter_fit+.5hair);
  113. y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
  114. filldraw stroke super_arc.e(1,2) & super_arc.e(2,3);  % arc
  115. penlabels(1,2,3); endchar;
  116.